home *** CD-ROM | disk | FTP | other *** search
/ SGI Varsity Update 1998 August / SGI Varsity Update 1998 August.iso / dist / dist6.5 / il_dev.idb / usr / include / il / ilRoi.h.z / ilRoi.h
C/C++ Source or Header  |  1998-07-29  |  3KB  |  86 lines

  1. #if 0 
  2.  
  3.     Copyright (c) 1991 SGI   All Rights Reserved
  4.     THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF SGI
  5.     The copyright notice above does not evidence any
  6.     actual or intended publication of such source code,
  7.     and is an unpublished work by Silicon Graphics, Inc.
  8.     This material contains CONFIDENTIAL INFORMATION that
  9.     is the property of Silicon Graphics, Inc. Any use,
  10.     duplication or disclosure not specifically authorized
  11.     by Silicon Graphics is strictly prohibited.
  12.     
  13.     RESTRICTED RIGHTS LEGEND:
  14.     
  15.     Use, duplication or disclosure by the Government is
  16.     subject to restrictions as set forth in subdivision
  17.     (c)(1)(ii) of the Rights in Technical Data and Computer
  18.     Software clause at DFARS 52.227-7013, and/or in similar
  19.     or successor clauses in the FAR, DOD or NASA FAR
  20.     Supplement.  Unpublished- rights reserved under the
  21.     Copyright Laws of the United States.  Contractor is
  22.     SILICON GRAPHICS, INC., 2011 N. Shoreline Blvd.,
  23.     Mountain View, CA 94039-7311
  24.  
  25. #endif
  26. /*
  27.     The base class ilRoi defines the basis for ROI objects in IL. 
  28. */
  29.  
  30. #ifndef _ilRoi_h_
  31. #define _ilRoi_h_
  32.  
  33. #if defined(IL2_5_COMPAT)
  34.     #include <il/ilTile.h>
  35. #endif
  36.  
  37. #include <ifl/iflTile.h>
  38. #include <il/ilLink.h>
  39. #include <il/ilTypes.h>
  40. #include <il/ilMpManager.h>
  41. #include <ifl/iflCoord.h>
  42.  
  43. enum ilRoiParam {
  44.     ilROIorientation = ilLinkParamLast<<1, 
  45.     ilRoiParamLast = ilROIorientation
  46. };
  47.  
  48. class ilRoiIter;
  49. class ilImage;
  50.  
  51. class ilRoi : public ilLink {
  52. public:
  53.     iflClassListDeclare
  54.     // external api: begin
  55.     virtual ~ilRoi() {}
  56.  
  57.     // get/set ROI coordinate orientation
  58.     ilStatus setOrientation(iflOrientation ori)
  59.     { orientation = ori; return setAltered(ilROIorientation); }
  60.     iflOrientation getOrientation()
  61.     { resetCheck(); return orientation; }
  62.  
  63.     // get the size of the ROI
  64.     void getSize(iflXYZint& size, iflOrientation orientation=iflOrientation(0));
  65.  
  66.     // create and return an iterator, mapped to an image
  67.     virtual ilStatus createIter(ilMpNode* parent, ilRoiIter** iter, ilImage* im,
  68.                     int x, int y, int z, int nx, int ny, int nz, 
  69.                 iflXYZint* offset, ilMpManager** pMgr=NULL)=0;
  70.     // external api: end
  71.  
  72.     #if defined(IL2_5_COMPAT)
  73.     ilStatus setCoordSpace(iflOrientation ord)
  74.         { return setOrientation(ord); }
  75.     ilCoordSpace getCoordSpace() { return getOrientation(); }
  76.     #endif
  77.  
  78. protected:
  79.     iflXYZint size;
  80.     iflOrientation orientation;
  81.     ilRoi() { setAllowed (ilROIorientation); orientation=iflOrientation(0); }
  82.  
  83.     friend class ilRoiIter;    
  84. };
  85. #endif
  86.